package cn.yangliu.nacos.comm.model;

import java.time.LocalDateTime;

import cn.yangliu.nacos.comm.constant.GlobalConstants;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;


/**
 * The type of nacos.
 *
 * @author 问道于盲
 * @date 2019 -12-31
 */
@Data
public class Oauth2UserModel {

    /**
     * current class instance's member.
     * The Id.
     */
    @ApiModelProperty("id")
    private Long id;

    /**
     * current class instance's member.
     * The Username.
     */
    @ApiModelProperty("用户名")
    private String username;

    /**
     * current class instance's member.
     * The Email.
     */
    @ApiModelProperty("邮箱")
    private String email;

    /**
     * current class instance's member.
     * The Mobile.
     */
    @ApiModelProperty("手机号")
    private String mobile;

    /**
     * current class instance's member.
     * The Account expire time.
     */
    @ApiModelProperty("账户过期时间")
    @JsonFormat(pattern = GlobalConstants.DATETIME)
    @DateTimeFormat(pattern = GlobalConstants.DATETIME)
    private LocalDateTime accountExpireTime = LocalDateTime.MIN;

    /**
     * current class instance's member.
     * The Enable.
     */
    @ApiModelProperty("账户是否禁用")
    private Boolean enable;

    /**
     * current class instance's member.
     * The Remark.
     */
    @ApiModelProperty("备注")
    private String remark;

    /**
     * current class instance's member.
     * The Create time.
     */
    @JsonFormat(pattern = GlobalConstants.DATETIME)
    @DateTimeFormat(pattern = GlobalConstants.DATETIME)
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    /**
     * current class instance's member.
     * The Update time.
     */
    @JsonFormat(pattern = GlobalConstants.DATETIME)
    @DateTimeFormat(pattern = GlobalConstants.DATETIME)
    @ApiModelProperty("更新时间")
    private LocalDateTime updateTime;

    /**
     * current class instance's member.
     * The Last password update time.
     */
    @JsonFormat(pattern = GlobalConstants.DATETIME)
    @DateTimeFormat(pattern = GlobalConstants.DATETIME)
    @ApiModelProperty("上次密码修改时间")
    private LocalDateTime lastPasswordUpdateTime;


}
